PL/SQL কাসরস (Cursors) ব্যবহার করে আপনি SQL কুইরিগুলি এক্সিকিউট করতে পারেন এবং ডেটার প্রতি রেকর্ডে একে একে কাজ করতে পারেন। কাসরসের সাথে কাজ করার সময়, কিছু গুরুত্বপূর্ণ কাসর অ্যাট্রিবিউট ব্যবহার করা হয় যা কাসরের অবস্থা বা ফলাফল সম্পর্কে গুরুত্বপূর্ণ তথ্য প্রদান করে। এই অ্যাট্রিবিউটগুলি বিশেষভাবে ইমপ্লিসিট এবং এক্সপ্লিসিট কাসরদের সাথে ব্যবহৃত হয়।
নীচে কিছু সাধারণ কাসর অ্যাট্রিবিউট সম্পর্কে বিস্তারিত আলোচনা করা হলো:
%FOUND
অ্যাট্রিবিউটটি চেক করে যে কাসরটি কোনো রেকর্ড পেয়েছে কিনা। এটি একটি বুলিয়ান মান ফেরত দেয়:DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name FROM employees;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
BEGIN
OPEN emp_cursor;
FETCH emp_cursor INTO v_emp_id, v_first_name;
IF emp_cursor%FOUND THEN
DBMS_OUTPUT.PUT_LINE('Employee found: ' || v_first_name);
ELSE
DBMS_OUTPUT.PUT_LINE('No employee found.');
END IF;
CLOSE emp_cursor;
END;
%NOTFOUND
অ্যাট্রিবিউটটি %FOUND
এর বিপরীত। এটি চেক করে যে কাসরটি কোনো রেকর্ড পায়নি কিনা। এটি TRUE ফেরত দেয় যদি কাসরটি কোনো রেকর্ড না পায় এবং FALSE ফেরত দেয় যদি কাসরটি রেকর্ড পায়।DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name FROM employees;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
BEGIN
OPEN emp_cursor;
FETCH emp_cursor INTO v_emp_id, v_first_name;
IF emp_cursor%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('No records found.');
ELSE
DBMS_OUTPUT.PUT_LINE('Record fetched: ' || v_first_name);
END IF;
CLOSE emp_cursor;
END;
%ROWCOUNT
অ্যাট্রিবিউটটি কাসরটি কতটি রেকর্ড ফেরত দিয়েছে তার সংখ্যা দেখায়। এটি একটি ইনটিজার মান ফেরত দেয় এবং কাসরের সাথে করা সব ফেচ অপারেশনের পরে এটি আপডেট হয়।DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name FROM employees;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO v_emp_id, v_first_name;
EXIT WHEN emp_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('Employee: ' || v_first_name);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total rows fetched: ' || emp_cursor%ROWCOUNT);
CLOSE emp_cursor;
END;
এখানে %ROWCOUNT
কাসরের মাধ্যমে কতটি রেকর্ড প্রক্রিয়া করা হয়েছে তা জানাবে।
%ISOPEN
অ্যাট্রিবিউটটি চেক করে যে কাসরটি ওপেন আছে কিনা। এটি একটি বুলিয়ান মান ফেরত দেয়:DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name FROM employees;
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
BEGIN
IF NOT emp_cursor%ISOPEN THEN
OPEN emp_cursor;
END IF;
FETCH emp_cursor INTO v_emp_id, v_first_name;
DBMS_OUTPUT.PUT_LINE('Employee: ' || v_first_name);
CLOSE emp_cursor;
END;
এখানে %ISOPEN
ব্যবহার করে আমরা যাচাই করছি যে কাসরটি ওপেন আছে কিনা, যদি না থাকে তবে কাসরটি ওপেন করা হচ্ছে।
PL/SQL কাসর অ্যাট্রিবিউটগুলি কাসরের অবস্থা জানার জন্য অত্যন্ত গুরুত্বপূর্ণ। এর মাধ্যমে আপনি কাসরটি কতটা কার্যকরভাবে ডেটা প্রক্রিয়া করছে, কবে কাসরটি কোনো রেকর্ড পেয়েছে বা পায়নি, এবং কাসরটি এখনও খোলা আছে কিনা তা নির্ধারণ করতে পারবেন। এগুলি কাসর ব্যবহারের প্রক্রিয়া উন্নত করার জন্য অপরিহার্য।
Read more